//导入axios npm install axios
import axios from "axios";
import {
    ElMessage,
} from "element-plus";

const baseURL = '/api';  // 前端可访问的完整后端路径
const instance = axios.create({ baseURL });

//删除用户
export async function userDeleteService(id) {
    try {
        // 发送异步请求，删除用户
        const result = await instance.delete(`/users/Delete/${id}`);
        return result.data;

    } catch (err) {
        console.error("Error fetching users:", err);
        return false;
    }
}


//获取所有用户的函数

export async function userGetAllService() {
    try {
        // 发送异步请求，获取所有用户
        const result = await instance.get("/users/getAll");

        // 把服务器响应的数据保存起来
        console.log(result.data);

        return result.data;
    } catch (err) {
        console.error("Error fetching users:", err);
    }
}


//查询用户的信息 搜索框
export async function userSearchService(username) {
    try {
        // 发送异步请求，获取所有用户
        const result = await instance.get(`/users/Search?username=${username}`);

        // 把服务器响应的数据保存起来
        console.log(result.data);

        return result.data;
    } catch (err) {
        console.error("Error fetching users:", err);
    }
}


//添加用户信息

export async function userAddService(user) {
    try {
        // 发送异步请求，将 user 作为 JSON 请求体
        const result = await instance.post("/users/add", user);

        // 输出服务器响应的数据
        console.log(result.data);

        return result.data;
    } catch (err) {
        console.error("Error fetching users:", err);
    }
}

export async function userUpdateService(user) {
    try {
        const response = await axios.put(`http://localhost:8080/users/updateId/${user.userID}`, user, {
            headers: {
                'Content-Type': 'application/json',
            },
        });
        ElMessage.success(response.data.message || '更新成功');
    } catch (error) {
        console.error('更新失败', error);
        ElMessage.error('更新失败');
    }
}

export async function getUserById(id) {
    try {
        // 构造URL，注意这里假设后端API接受名为'id'的查询参数  
        const url = `http://localhost:8080/users/${id}`;

        // 发送异步GET请求  
        const response = await axios.get(url);

        // 处理服务器响应  
        console.log(response.data);

        // 返回获取到的用户数据  
        return response.data;
    } catch (error) {
        // 捕获并处理错误  
        console.error("Error fetching user by ID:", error);
        // 可以根据需要抛出错误或返回null/undefined等  
        // throw error; // 如果调用者需要知道错误，可以取消注释这行  
    }
    // 注意：如果没有捕获到错误，函数将隐式返回undefined  

}
export async function loginService(email, password) {
    try {
        const response = await instance.post(`/users/login?email=${encodeURIComponent(email)}&password=${encodeURIComponent(password)}`);
        return response.data; // 返回完整的响应数据
    } catch (error) {
        console.error("Error during login request:", error);
        throw error; // 抛出异常供上层捕获
    }
}




